package enrique.kurso.lecionoj;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import enrique.kurso.R;
import enrique.kurso.util.Utils;

public class VortoLudo extends Activity{
	public final String TITULO = "titulo";
	public final String PARRAFO = "parrafo";
	public final String EJERCICIOS = "ejercicios";
	public final String NUMEROEJERCICIOS = "numeroejercicios";
	public final String PALABRA = "palabra";
	public final String OPCION1 = "opcion1";
	public final String OPCION2 = "opcion2";
	public final String OPCION3 = "opcion3";
	public final String OPCION4 = "opcion4";
	public final String OPCION5 = "opcion5";
	public final String SOLUCION = "solucion";
	Button boton;
	String fichero;
	ArrayList<Integer> numeros;
	float aciertos=0,errores=0,porcentaje=0,restantes;
	int numeroejercicio;
	TextView titulo,parrafo,palabra,aciertosTx,erroresTx,porcentajeTx,restantesTx;
	Button boton1,boton2,boton3,boton4,boton5;
	OnClickListener chequear;
	HashMap<Integer, VortoLudoEjercicio> ejercicios;
	JSONArray ejerciciosArray;
	public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.vortoludo_layout);
	        fichero = getIntent().getStringExtra("fichero");
	        guardarEjercicios(fichero);
	        aciertos = 0;
	        errores = 0;
	        porcentaje = 0;
	        aciertosTx = (TextView) findViewById(R.id.aciertos);
	        erroresTx = (TextView) findViewById(R.id.errores);
	        porcentajeTx = (TextView) findViewById(R.id.porcentaje);
	        restantesTx = (TextView) findViewById(R.id.palabrasRestantes);
	        palabra = (TextView) findViewById(R.id.palabra);
	        boton1 = (Button) findViewById(R.id.opcion1);
	        boton2 = (Button) findViewById(R.id.opcion2);
	        boton3 = (Button) findViewById(R.id.opcion3);
	        boton4 = (Button) findViewById(R.id.opcion4);
	        boton5 = (Button) findViewById(R.id.opcion5);
	        pintarEjercicio();
	        
	        
	        
	}    
	
	public void guardarEjercicios(String fichero){
		JSONObject jObject = null;
		TextView traduccion;
		numeros = new ArrayList<Integer>();
		Context context = getApplicationContext();
		try {
			try {
				jObject = Utils.getJSONFromStream(getAssets().open(fichero));
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			if(jObject.has(TITULO)){
				titulo = (TextView) findViewById(R.id.tituloVortoLudo);
				titulo.setText(jObject.getString(TITULO));
				parrafo = (TextView) findViewById(R.id.parrafoVortoLudo);
				parrafo.setText(jObject.getString(PARRAFO));
				for(int g=0;g<jObject.getInt(NUMEROEJERCICIOS);g++){
					numeros.add(g);
				}
				restantes = numeros.size();
				ejercicios = new HashMap<Integer, VortoLudoEjercicio>();
				if(jObject.has(EJERCICIOS)){
					ejerciciosArray = jObject.getJSONArray(EJERCICIOS);	
					for(int x=0;x<ejerciciosArray.length();x++){
						VortoLudoEjercicio vortoEjer = new VortoLudoEjercicio();
						vortoEjer.setPalabra(ejerciciosArray.getJSONObject(x).getString(PALABRA));
						vortoEjer.setOpcion1(ejerciciosArray.getJSONObject(x).getString(OPCION1));
						vortoEjer.setOpcion2(ejerciciosArray.getJSONObject(x).getString(OPCION2));
						vortoEjer.setOpcion3(ejerciciosArray.getJSONObject(x).getString(OPCION3));
						vortoEjer.setOpcion4(ejerciciosArray.getJSONObject(x).getString(OPCION4));
						vortoEjer.setOpcion5(ejerciciosArray.getJSONObject(x).getString(OPCION5));
						vortoEjer.setSolucion(ejerciciosArray.getJSONObject(x).getString(SOLUCION));
						ejercicios.put(x, vortoEjer);
					}					
				}else{
					//ERROR no hay palabras???
				}
			}else{
				//ERROR no hay titulo=???
			}
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void pintarEjercicio(){
		
		Random randomGenerator = new Random();
		numeroejercicio = randomGenerator.nextInt(numeros.size());
		palabra.setText(ejercicios.get(numeroejercicio).getPalabra());
		boton1.setText(ejercicios.get(numeroejercicio).getOpcion1());
		boton2.setText(ejercicios.get(numeroejercicio).getOpcion2());
		boton3.setText(ejercicios.get(numeroejercicio).getOpcion3());
		boton4.setText(ejercicios.get(numeroejercicio).getOpcion4());
		boton5.setText(ejercicios.get(numeroejercicio).getOpcion5());
		chequear = new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				if(((Button)arg0).getText().equals(ejercicios.get(numeroejercicio).getSolucion())){
					aciertos++;
					restantes--;
					aciertosTx.setText(aciertos+"");
					numeros.remove(numeroejercicio);
					
					
				}else{
					errores++;
					erroresTx.setText(errores+"");
					
				}
				restantesTx.setText(restantes+"");
				
				
				porcentaje = (aciertos/(aciertos+errores))*100;
				
				porcentajeTx.setText(porcentaje+"%");
				pintarEjercicio();
			}
		};
		boton1.setOnClickListener(chequear);
		boton2.setOnClickListener(chequear);
		boton3.setOnClickListener(chequear);
		boton4.setOnClickListener(chequear);
		
	}
}
